#ifndef HANDLER_TYPES_HPP
#define HANDLER_TYPES_HPP
#include <boost/function.hpp>
#include <boost/asio.hpp>
#include <cryptopp/cryptlib.h>
namespace patterns
{
namespace handlers
{

typedef  boost::function<void(boost::system::error_code const&)>       error_handler_t;
typedef  boost::function<void(boost::system::error_code &)>            mutable_error_handler_t;
typedef  boost::function<void(boost::system::error_code const&,boost::asio::ip::udp::resolver::iterator)>   udp_resolve_handler_t;
typedef  boost::function<void(boost::system::error_code const&,std::size_t)>  transfer_handler_t;
typedef  boost::function<void(CryptoPP::Exception const &)> crypto_handler_t;
typedef boost::function<void(const boost::system::error_code&, const CryptoPP::Exception&)> system_crypto_handler_t;
}//namespace handlers
}//namespace patterns

#endif // HANDLER_TYPES_HPP
